with c_arbre; 
generic
max : integer := 32;

package reconeixedor is
--	package mypila is new cpila(element => node);
--	use mypila;
  subtype operador is character;
	package mytree is new c_arbre(element1 => float, element2 => operador);
	use mytree;
  type expr is private;

  procedure shift(exp: in out expr);
  procedure rec_exp_ini(exp: in out expr; e: in out arbre);
  procedure rec_exp(exp: in out expr; e: in out arbre);
  procedure rec_fact(exp: in out expr; f: in out arbre);
  procedure rec_term(exp: in out expr; t: in out arbre);

semicolon_error: exception;
private
  type expr is record
    v: string(1..max);
    n: integer;
  end record;

end reconeixedor;
